<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>P2P金融项目接口测试报告</title>
    <meta name="generator" content="HTMLTestRunner 0.9.1"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    
    <link href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/echarts/3.8.5/echarts.common.min.js"></script>
    <!-- <script type="text/javascript" src="js/echarts.common.min.js"></script> -->
    
    
<style type="text/css" media="screen">
    body        { font-family: Microsoft YaHei,Consolas,arial,sans-serif; font-size: 80%; }
    table       { font-size: 100%; }
    pre         { white-space: pre-wrap;word-wrap: break-word; }

    /* -- heading ---------------------------------------------------------------------- */
    h1 {
        font-size: 16pt;
        color: gray;
    }
    .heading {
        margin-top: 0ex;
        margin-bottom: 1ex;
    }

    .heading .attribute {
        margin-top: 1ex;
        margin-bottom: 0;
    }

    .heading .description {
        margin-top: 2ex;
        margin-bottom: 3ex;
    }

    /* -- css div popup ------------------------------------------------------------------------ */
    a.popup_link {
    }

    a.popup_link:hover {
        color: red;
    }

    .popup_window {
        display: none;
        position: relative;
        left: 0px;
        top: 0px;
        /*border: solid #627173 1px; */
        padding: 10px;
        /*background-color: #E6E6D6; */
        font-family: "Lucida Console", "Courier New", Courier, monospace;
        text-align: left;
        font-size: 8pt;
        /* width: 500px;*/
    }

    }
    /* -- report ------------------------------------------------------------------------ */
    #show_detail_line {
        margin-top: 3ex;
        margin-bottom: 1ex;
    }
    #result_table {
        width: 99%;
    }
    #header_row {
        font-weight: bold;
        color: #303641;
        background-color: #ebebeb;
    }
    #total_row  { font-weight: bold; }
    .passClass  { background-color: #bdedbc; }
    .failClass  { background-color: #ffefa4; }
    .errorClass { background-color: #ffc9c9; }
    .passCase   { color: #6c6; }
    .failCase   { color: #FF6600; font-weight: bold; }
    .errorCase  { color: #c00; font-weight: bold; }
    .hiddenRow  { display: none; }
    .testcase   { margin-left: 2em; }


    /* -- ending ---------------------------------------------------------------------- */
    #ending {
    }

    #div_base {
                position:absolute;
                top:0%;
                left:5%;
                right:5%;
                width: auto;
                height: auto;
                margin: -15px 0 0 0;
    }
</style>

    
</head>
<body>
    <script language="javascript" type="text/javascript"><!--
    output_list = Array();

    /* level - 0:Summary; 1:Failed; 2:All */
    function showCase(level) {
        trs = document.getElementsByTagName("tr");
        for (var i = 0; i < trs.length; i++) {
            tr = trs[i];
            id = tr.id;
            if (id.substr(0,2) == 'ft') {
                if (level < 1) {
                    tr.className = 'hiddenRow';
                }
                else {
                    tr.className = '';
                }
            }
            if (id.substr(0,2) == 'pt') {
                if (level > 1) {
                    tr.className = '';
                }
                else {
                    tr.className = 'hiddenRow';
                }
            }
        }
    }


    function showClassDetail(cid, count) {
        var id_list = Array(count);
        var toHide = 1;
        for (var i = 0; i < count; i++) {
            tid0 = 't' + cid.substr(1) + '.' + (i+1);
            tid = 'f' + tid0;
            tr = document.getElementById(tid);
            if (!tr) {
                tid = 'p' + tid0;
                tr = document.getElementById(tid);
            }
            id_list[i] = tid;
            if (tr.className) {
                toHide = 0;
            }
        }
        for (var i = 0; i < count; i++) {
            tid = id_list[i];
            if (toHide) {
                document.getElementById('div_'+tid).style.display = 'none'
                document.getElementById(tid).className = 'hiddenRow';
            }
            else {
                document.getElementById(tid).className = '';
            }
        }
    }


    function showTestDetail(div_id){
        var details_div = document.getElementById(div_id)
        var displayState = details_div.style.display
        // alert(displayState)
        if (displayState != 'block' ) {
            displayState = 'block'
            details_div.style.display = 'block'
        }
        else {
            details_div.style.display = 'none'
        }
    }


    function html_escape(s) {
        s = s.replace(/&/g,'&amp;');
        s = s.replace(/</g,'&lt;');
        s = s.replace(/>/g,'&gt;');
        return s;
    }

    /* obsoleted by detail in <div>
    function showOutput(id, name) {
        var w = window.open("", //url
                        name,
                        "resizable,scrollbars,status,width=800,height=450");
        d = w.document;
        d.write("<pre>");
        d.write(html_escape(output_list[id]));
        d.write("\n");
        d.write("<a href='javascript:window.close()'>close</a>\n");
        d.write("</pre>\n");
        d.close();
    }
    */
    --></script>

    <div id="div_base">
        
    <div class='page-header'>
        <h1>P2P金融项目接口测试报告</h1>
    <p class='attribute'><strong>开始时间:</strong> 2022-03-24 09:27:26</p>
<p class='attribute'><strong>运行时长:</strong> 0:01:11.923579</p>
<p class='attribute'><strong>状态:</strong> 通过 27 失败 8 错误 1</p>

    </div>
    <div style="float: left;width:50%;"><p class='description'></p></div>
    <div id="chart" style="width:50%;height:400px;float:left;"></div>

        
    <div class="btn-group btn-group-sm">
        <button class="btn btn-default" onclick='javascript:showCase(0)'>总结</button>
        <button class="btn btn-default" onclick='javascript:showCase(1)'>失败</button>
        <button class="btn btn-default" onclick='javascript:showCase(2)'>全部</button>
    </div>
    <p></p>
    <table id='result_table' class="table table-bordered">
        <colgroup>
            <col align='left' />
            <col align='right' />
            <col align='right' />
            <col align='right' />
            <col align='right' />
            <col align='right' />
        </colgroup>
        <tr id='header_row'>
            <td>测试套件/测试用例</td>
            <td>总数</td>
            <td>通过</td>
            <td>失败</td>
            <td>错误</td>
            <td>查看</td>
        </tr>
        
    <tr class='failClass'>
        <td>script.login.login</td>
        <td>19</td>
        <td>14</td>
        <td>5</td>
        <td>0</td>
        <td><a href="javascript:showClassDetail('c1',19)">详情</a></td>
    </tr>

<tr id='pt1.1' class='hiddenRow'>
    <td class='none'><div class='testcase'>test01_get_img_code_random_float</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.2' class='hiddenRow'>
    <td class='none'><div class='testcase'>test02_get_img_code_random_int</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.3' class='hiddenRow'>
    <td class='none'><div class='testcase'>test03_get_img_code_null</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.4' class='hiddenRow'>
    <td class='none'><div class='testcase'>test04_get_img_code_char</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.5' class='hiddenRow'>
    <td class='none'><div class='testcase'>test05_get_SmsCode_fail</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.6' class='hiddenRow'>
    <td class='none'><div class='testcase'>test06_get_wrong_SmsCode_fail</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.7' class='hiddenRow'>
    <td class='none'><div class='testcase'>test07_get_SmsCode_is_null_fail</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.8' class='hiddenRow'>
    <td class='none'><div class='testcase'>test08_not_getSmsCode_fail</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='ft1.9' class='none'>
    <td class='failCase'><div class='testcase'>test09_register_success_param_required</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft1.9')" >
        失败</a>

    <div id='div_ft1.9' class="popup_window">
        <pre>ft1.9: Traceback (most recent call last):
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/script/login.py", line 106, in test09_register_success_param_required
    assert_utils(self, response, 200, 200, "注册成功")
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 13, in assert_utils
    self.assertEqual(status, response.json().get("status"))
AssertionError: 200 != 100
</pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='ft1.10' class='none'>
    <td class='failCase'><div class='testcase'>test10_register_success_param_all</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft1.10')" >
        失败</a>

    <div id='div_ft1.10' class="popup_window">
        <pre>ft1.10: Traceback (most recent call last):
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/script/login.py", line 121, in test10_register_success_param_all
    assert_utils(self, response, 200, 200, "注册成功")
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 13, in assert_utils
    self.assertEqual(status, response.json().get("status"))
AssertionError: 200 != 100
</pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='pt1.11' class='hiddenRow'>
    <td class='none'><div class='testcase'>test11_register_fail_imgCode_error</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='ft1.12' class='none'>
    <td class='failCase'><div class='testcase'>test12_register_fail_SmsCode_error</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft1.12')" >
        失败</a>

    <div id='div_ft1.12' class="popup_window">
        <pre>ft1.12: Traceback (most recent call last):
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/script/login.py", line 166, in test12_register_fail_SmsCode_error
    assert_utils(self, response, 200, 100, "验证码错误")
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 14, in assert_utils
    self.assertEqual(desc, response.json().get("description"))
AssertionError: '验证码错误' != '手机已存在!'
- 验证码错误
+ 手机已存在!

</pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='pt1.13' class='hiddenRow'>
    <td class='none'><div class='testcase'>test12_register_fail_phone_exist</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='ft1.14' class='none'>
    <td class='failCase'><div class='testcase'>test13_register_fail_pwd_null</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft1.14')" >
        失败</a>

    <div id='div_ft1.14' class="popup_window">
        <pre>ft1.14: Traceback (most recent call last):
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/script/login.py", line 181, in test13_register_fail_pwd_null
    assert_utils(self, response, 200, 100, "密码不能为空")
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 14, in assert_utils
    self.assertEqual(desc, response.json().get("description"))
AssertionError: '密码不能为空' != '手机已存在!'
- 密码不能为空
+ 手机已存在!

</pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='ft1.15' class='none'>
    <td class='failCase'><div class='testcase'>test14_register_fail_dy_serve_off</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft1.15')" >
        失败</a>

    <div id='div_ft1.15' class="popup_window">
        <pre>ft1.15: Traceback (most recent call last):
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/script/login.py", line 196, in test14_register_fail_dy_serve_off
    assert_utils(self, response, 200, 100, "请同意我们的条款")
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 14, in assert_utils
    self.assertEqual(desc, response.json().get("description"))
AssertionError: '请同意我们的条款' != '手机已存在!'
- 请同意我们的条款
+ 手机已存在!

</pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='pt1.16' class='hiddenRow'>
    <td class='none'><div class='testcase'>test15_all_right_login_success</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.17' class='hiddenRow'>
    <td class='none'><div class='testcase'>test16_phone_no_register_login_fail</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.18' class='hiddenRow'>
    <td class='none'><div class='testcase'>test17_pwd_null_login_fail</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.19' class='hiddenRow'>
    <td class='none'><div class='testcase'>test18_pwd_error_1_login_fail</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

    <tr class='failClass'>
        <td>script.approve.approve</td>
        <td>4</td>
        <td>2</td>
        <td>2</td>
        <td>0</td>
        <td><a href="javascript:showClassDetail('c2',4)">详情</a></td>
    </tr>

<tr id='pt2.1' class='hiddenRow'>
    <td class='none'><div class='testcase'>test01_approve_success</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='ft2.2' class='none'>
    <td class='failCase'><div class='testcase'>test02_realname_null_approve_fail</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft2.2')" >
        失败</a>

    <div id='div_ft2.2' class="popup_window">
        <pre>ft2.2: Traceback (most recent call last):
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/script/approve.py", line 39, in test02_realname_null_approve_fail
    assert_utils(self, response, 200, 100, '姓名不能为空')
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 14, in assert_utils
    self.assertEqual(desc, response.json().get("description"))
AssertionError: '姓名不能为空' != 'String index out of range: 1'
- 姓名不能为空
+ String index out of range: 1

</pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='ft2.3' class='none'>
    <td class='failCase'><div class='testcase'>test03_cardId_null_approve_fail</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft2.3')" >
        失败</a>

    <div id='div_ft2.3' class="popup_window">
        <pre>ft2.3: Traceback (most recent call last):
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/script/approve.py", line 48, in test03_cardId_null_approve_fail
    assert_utils(self, response, 200, 100, '身份证号不能为空')
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 14, in assert_utils
    self.assertEqual(desc, response.json().get("description"))
AssertionError: '身份证号不能为空' != 'String index out of range: 1'
- 身份证号不能为空
+ String index out of range: 1

</pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='pt2.4' class='hiddenRow'>
    <td class='none'><div class='testcase'>test03_get_approve</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

    <tr class='passClass'>
        <td>script.trust.trust</td>
        <td>2</td>
        <td>2</td>
        <td>0</td>
        <td>0</td>
        <td><a href="javascript:showClassDetail('c3',2)">详情</a></td>
    </tr>

<tr id='pt3.1' class='hiddenRow'>
    <td class='none'><div class='testcase'>test01_trust_request</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt3.2' class='hiddenRow'>
    <td class='none'><div class='testcase'>test02_recharge_success</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

    <tr class='passClass'>
        <td>script.tender.tender</td>
        <td>3</td>
        <td>3</td>
        <td>0</td>
        <td>0</td>
        <td><a href="javascript:showClassDetail('c4',3)">详情</a></td>
    </tr>

<tr id='pt4.1' class='hiddenRow'>
    <td class='none'><div class='testcase'>test01_get_loaninfo</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt4.2' class='hiddenRow'>
    <td class='none'><div class='testcase'>test02_tender</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt4.3' class='hiddenRow'>
    <td class='none'><div class='testcase'>test03_get_tenderList</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

    <tr class='failClass'>
        <td>script.tender_process.test_tender_process</td>
        <td>7</td>
        <td>6</td>
        <td>1</td>
        <td>0</td>
        <td><a href="javascript:showClassDetail('c5',7)">详情</a></td>
    </tr>

<tr id='ft5.1' class='none'>
    <td class='failCase'><div class='testcase'>test01_registr_success</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft5.1')" >
        失败</a>

    <div id='div_ft5.1' class="popup_window">
        <pre>ft5.1: Traceback (most recent call last):
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/script/tender_process.py", line 57, in test01_registr_success
    assert_utils(self, response, 200, 200, "注册成功")
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 13, in assert_utils
    self.assertEqual(status, response.json().get("status"))
AssertionError: 200 != 100
</pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='pt5.2' class='hiddenRow'>
    <td class='none'><div class='testcase'>test02_login_success</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt5.3' class='hiddenRow'>
    <td class='none'><div class='testcase'>test03_trust_success</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt5.4' class='hiddenRow'>
    <td class='none'><div class='testcase'>test04_rechange_success</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt5.4')" >
        通过</a>

    <div id='div_pt5.4' class="popup_window">
        <pre>pt5.4: --- Logging error ---
Traceback (most recent call last):
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 1085, in emit
    msg = self.format(record)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 929, in format
    return fmt.format(record)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 668, in format
    record.message = record.getMessage()
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 373, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/run_suite.py", line 22, in &lt;module&gt;
    runner.run(suite)
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/lib/HTMLTestRunner.py", line 720, in run
    test(result)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/suite.py", line 122, in run
    test(result)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/suite.py", line 122, in run
    test(result)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/case.py", line 736, in __call__
    return self.run(*args, **kwds)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/case.py", line 676, in run
    self._callTestMethod(testMethod)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
    method()
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/script/tender_process.py", line 94, in test04_rechange_success
    logging.info('NetSave OK', response.text)
Message: 'NetSave OK'
Arguments: ('NetSave OK',)
--- Logging error ---
Traceback (most recent call last):
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 1085, in emit
    msg = self.format(record)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 929, in format
    return fmt.format(record)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 668, in format
    record.message = record.getMessage()
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/logging/__init__.py", line 373, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/run_suite.py", line 22, in &lt;module&gt;
    runner.run(suite)
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/lib/HTMLTestRunner.py", line 720, in run
    test(result)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/suite.py", line 122, in run
    test(result)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/suite.py", line 122, in run
    test(result)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/case.py", line 736, in __call__
    return self.run(*args, **kwds)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/case.py", line 676, in run
    self._callTestMethod(testMethod)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
    method()
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/script/tender_process.py", line 94, in test04_rechange_success
    logging.info('NetSave OK', response.text)
Message: 'NetSave OK'
Arguments: ('NetSave OK',)
</pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='pt5.5' class='hiddenRow'>
    <td class='none'><div class='testcase'>test05_get_loaninfo</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt5.6' class='hiddenRow'>
    <td class='none'><div class='testcase'>test06_tender</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt5.7' class='hiddenRow'>
    <td class='none'><div class='testcase'>test07_get_tender_list</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

    <tr class='errorClass'>
        <td>unittest.suite._ErrorHolder</td>
        <td>1</td>
        <td>0</td>
        <td>0</td>
        <td>1</td>
        <td><a href="javascript:showClassDetail('c6',1)">详情</a></td>
    </tr>

<tr id='ft6.1' class='none'>
    <td class='errorCase'><div class='testcase'>test_tender_process)</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft6.1')" >
        错误</a>

    <div id='div_ft6.1' class="popup_window">
        <pre>ft6.1: Traceback (most recent call last):
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 47, in delete
    conn = cls.get_conn(db_name)
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 34, in get_conn
    conn = pymysql.connect(app.DB_URL,app.DB_USERNAME,app.DB_PASSWORD,db_name,autocommit=True)
TypeError: __init__() takes 1 positional argument but 5 positional arguments (and 1 keyword-only argument) were given

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 51, in delete
    conn.rollback()
UnboundLocalError: local variable 'conn' referenced before assignment

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/script/tender_process.py", line 31, in tearDownClass
    DBUtils.delete(app.DB_MEMBER,sql1)
  File "/Users/maoshuo/PycharmProjects/apiTestP2P/utils.py", line 53, in delete
    cls.close(cursor,conn)
UnboundLocalError: local variable 'cursor' referenced before assignment
</pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

        <tr id='total_row'>
            <td>总计</td>
            <td>36</td>
            <td>27</td>
            <td>8</td>
            <td>1</td>
            <td>&nbsp;</td>
        </tr>
    </table>

        <div id='ending'>&nbsp;</div>
        
    <script type="text/javascript">
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById('chart'));

        // 指定图表的配置项和数据
        var option = {
            title : {
                text: '测试执行情况',
                x:'center'
            },
            tooltip : {
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            color: ['#95b75d', 'grey', '#b64645'],
            legend: {
                orient: 'vertical',
                left: 'left',
                data: ['通过','失败','错误']
            },
            series : [
                {
                    name: '测试执行情况',
                    type: 'pie',
                    radius : '60%',
                    center: ['50%', '60%'],
                    data:[
                        {value:27, name:'通过'},
                        {value:8, name:'失败'},
                        {value:1, name:'错误'}
                    ],
                    itemStyle: {
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        };

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    </script>
    
    </div>
</body>
</html>
